다의성 해소

AI
gemma-4-31b
작성자
익명
작성일
2026.08.04
조회수
4
버전
v1

다의성 해소 (Word Sense Disambiguation, WSD)

1. 개요

다의성 해소(Word Sense Disambiguation, WSD)란 자연어 처리(NLP)에서 하나의 단어가 여러 가지 의미를 가지고 있을 때, 문맥을 분석하여 해당 단어가 가진 여러 의미 중 적절한 의미를 결정하는 자연어 처리 기술이다. 인간은 대화나 독서 시 주변 단어와 상황 정보를 통해 단어의 의미를 즉각적으로 파악하지만, 컴퓨터는 텍스트를 기호의 집합으로 처리하므로 명시적인 알고리즘을 통해 문맥적 의미를 결정하는 과정이 필수적이다.

2. 다의어동음이의어의 차이

WSD를 이해하기 위해서는 먼저 분석 대상이 되는 단어의 유형을 구분해야 한다.

  • 다의어 (Polysemy): 하나의 단어가 서로 밀접하게 연관된 여러 개의 의미를 가지는 경우이다. 예를 들어 '머리'라는 단어는 신체 부위, 지능, 조직의 우두머리라는 의미로 쓰이며, 이들은 모두 '상단' 또는 '중심'이라는 핵심 개념을 공유한다.
  • 동음이의어 (Homonymy): 소리는 같으나 의미가 완전히 다르고 서로 아무런 연관성이 없는 단어들이다. 예를 들어 '배'라는 단어는 신체 부위(腹), 먹는 과일(梨), 타는 운송 수단(舟)으로 나뉘며, 이들 사이에는 의미적 공통점이 없다.

WSD는 이 두 경우 모두를 포함하여, 텍스트 내에서 단어의 정확한 '의미(Sense)'를 특정하는 것을 목표로 한다.

3. 다의성 해소의 필요성과 사례

자연어는 본질적으로 중의성(Ambiguity)을 내포하고 있다. WSD가 제대로 이루어지지 않으면 기계 번역에서 오역이 발생하거나, 정보 검색 시 사용자의 의도와 무관한 결과가 출력되는 문제가 발생한다.

[표 1] 문맥에 따른 단어 의미 변화 예시

대상 단어 문맥 예시 판별된 의미 (Sense) 비고
차(Car/Tea) "나는 오늘 를 마셨다." 마시는 음료 (Tea) 동음이의어
차(Car/Tea) "주차장에 가 많다." 운송 수단 (Car) 동음이의어
잡다(Hold/Catch) "손으로 컵을 잡다." 물리적으로 쥐다 (Hold) 다의어
잡다(Hold/Catch) "기회를 잡다." 추상적 가치를 획득하다 (Seize) 다의어

4. 주요 접근 방법

WSD의 발전 과정은 가용 자원과 모델의 복잡도에 따라 크게 세 가지 방식으로 나뉜다.

4.1 지식 기반 방식 (Knowledge-based Approach)

외부의 사전이나 온톨로지(Ontology, 개념 간의 관계를 정의한 지식 체계)를 활용하는 방식이다. 별도의 학습 데이터가 필요 없으나, 사전의 정의가 불충분할 경우 성능이 제한된다. * 특징: 사전적 정의(Gloss)의 중첩도를 계산하거나 의미 네트워크의 거리를 측정함.

4.2 지도 학습 방식 (Supervised Approach)

사람이 직접 정답(Sense Label)을 달아놓은 말뭉치(Corpus)를 학습시키는 방식이다. 가장 높은 정확도를 보이지만, 모든 단어의 모든 의미에 대해 레이블링 데이터를 구축하는 비용이 매우 크다는 단점이 있다. * 특징: SVM, Random Forest부터 딥러닝 모델까지 다양한 분류기(Classifier) 활용.

4.3 비지도 학습 방식 (Unsupervised Approach)

레이블링 데이터 없이 텍스트 내의 통계적 패턴이나 단어 간의 공기(Co-occurrence) 정보를 활용하는 방식이다. 데이터 구축 비용은 없으나, 판별된 의미가 실제 사전적 의미와 일치하는지 매핑하는 과정이 어렵다. * 특징: Word Sense Induction(WSI)을 통해 의미 군집을 먼저 형성함. 이때 WSD가 기정의된 사전 의미에 단어를 매핑하는 것이라면, WSI는 데이터로부터 의미 군집을 스스로 찾아내는 과정이라는 점에서 차이가 있다.

5. 핵심 알고리즘 및 모델

5.1 전통적 알고리즘

  • Lesk 알고리즘: 대상 단어의 사전적 정의와 주변 단어들의 사전적 정의 사이의 단어 중첩(Overlap)이 가장 많은 의미를 선택하는 방식이다.
  • WordNet 기반 접근: WordNet과 같은 의미 네트워크에서 단어 간의 계층 구조(Hypernym/Hyponym)를 분석하여 최적의 의미를 찾는다.

[도식 1] WordNet 계층 구조 예시 생물(Entity) $\rightarrow$ 동물(Animal) $\rightarrow$ 포유류(Mammal) $\rightarrow$ 개(Dog) (상위어(Hypernym)로 갈수록 일반적인 개념이며, 하위어(Hyponym)로 갈수록 구체적인 개념이 됨)

5.2 최신 모델: 문맥 임베딩 (Contextual Embedding)

과거의 Word2Vec은 하나의 단어에 하나의 벡터만 할당했으나, BERT(Bidirectional Encoder Representations from Transformers)GPT와 같은 트랜스포머 기반 모델은 문맥에 따라 단어 벡터가 동적으로 변하는 문맥 임베딩을 생성한다. 이를 통해 동일한 단어라도 주변 단어에 따라 벡터 공간상의 위치가 달라지므로, 별도의 복잡한 규칙 없이도 다의성을 효과적으로 구분할 수 있다.

5.3 최신 트렌드: Few-shot 학습

최근에는 방대한 레이블링 데이터 없이도 몇 개의 예시(Few-shot)만으로 새로운 단어의 의미를 학습하는 기법이 주목받고 있다. 이는 메타 학습(Meta-learning)이나 프롬프트 튜닝(Prompt Tuning)을 통해 모델이 '의미를 구분하는 방법' 자체를 학습하게 하여, 데이터 희소성 문제를 해결하려는 시도이다.

5.4 최신 의미 사전 사례

전통적인 WordNet 외에도 다음과 같은 현대적 지식 베이스가 활용된다. * BabelNet: WordNet과 위키피디아를 결합하여 다국어 의미 네트워크를 구축한 거대 지식 베이스이다. * ConceptNet: 상식적 추론을 위해 개념 간의 관계(예: 사과 → 먹는 것)를 그래프 형태로 저장한 네트워크이다.

5.5 구현 예시 (Python/HuggingFace)

한국어 전용 모델인 klue/bert-base를 사용하여 문맥에 따른 임베딩 차이를 확인하는 코드이다.

from transformers import AutoTokenizer, AutoModel
import torch

# 한국어 BERT 모델 및 토크나이저 로드
tokenizer = AutoTokenizer.from_pretrained("klue/bert-base")
model = AutoModel.from_pretrained("klue/bert-base")

sentences = [
    "나는 오늘 차를 마셨다.", # 의미 1: 음료
    "주차장에 차가 많다."     # 의미 2: 운송수단
]

for text in sentences:
    inputs = tokenizer(text, return_tensors="pt")
    with torch.no_grad():
        outputs = model(**inputs)
    
    # 마지막 은닉층의 벡터를 통해 문맥적 의미 추출
    # [batch_size, sequence_length, hidden_size]
    embeddings = outputs.last_hidden_state
    
    # '차' 토큰의 위치를 찾아 해당 벡터를 출력 (단순화를 위해 첫 번째 토큰 이후 탐색)
    tokens = tokenizer.tokenize(text)
    target_idx = tokens.index("차") + 1 # [CLS] 토큰 포함으로 +1
    word_vector = embeddings[0][target_idx]
    
    print(f"Sentence: {text} | Vector Shape: {word_vector.shape}")
    print(f"Vector Sample: {word_vector[:5]}...\n")

6. 평가 지표 및 한계

6.1 평가 지표

  • 정확도 (Accuracy): 전체 판별 사례 중 정답 의미를 맞춘 비율.
  • F1-score: 정밀도(Precision)와 재현율(Recall)의 조화 평균이다. 특정 의미의 데이터가 부족한 불균형 데이터셋에서 모델의 성능을 객관적으로 평가하기 위해 주로 사용한다. $$\text{F1-score} = 2 \times \frac{\text{Precision} \times \text{Recall}}{\text{Precision} + \text{Recall}}$$
  • 기준 데이터셋: Senseval이나 SemEval과 같은 벤치마크 데이터셋이 표준으로 사용된다.

6.2 기술적 한계

  1. 의미 경계의 모호성: 단어의 의미가 칼로 자르듯 나뉘지 않고 연속적인 스펙트럼을 가지는 경우가 많아, 사전적 정의만으로는 한계가 있다.
  2. 데이터 부족 (Knowledge Acquisition Bottleneck): 특히 저자원 언어(Low-resource language)의 경우, 고품질의 의미 레이블링 데이터나 정교한 의미 사전이 부족하다.
  3. 신조어 및 의미 확장: 언어는 계속 변하며 새로운 의미가 추가되는데, 정적인 사전 기반 모델은 이를 실시간으로 반영하기 어렵다.

7. 활용 분야

WSD는 단독으로 쓰이기보다 다른 NLP 태스크의 전처리 또는 핵심 모듈로 활용되어 전체 시스템의 성능을 높인다.

  • 기계 번역 (Machine Translation): '배'를 영어로 번역할 때 Pear, Ship, Belly 중 문맥에 맞는 단어를 선택하게 한다.
  • 정보 검색 (Information Retrieval): 사용자가 '애플'을 검색했을 때, 과일을 찾는지 기업을 찾는지 판별하여 검색 결과의 정확도를 높인다.
  • 질의응답 시스템 (QA): 질문 내 단어의 정확한 의미를 파악해야 지식 베이스(Knowledge Base)에서 올바른 정답을 추출할 수 있다.
  • 챗봇 및 가상 비서: 사용자의 발화 의도(Intent)를 정확히 파악하여 문맥에 맞는 적절한 응답을 생성한다.
AI 생성 콘텐츠 안내

이 문서는 AI 모델(gemma-4-31b)에 의해 생성된 콘텐츠입니다.

주의사항: AI가 생성한 내용은 부정확하거나 편향된 정보를 포함할 수 있습니다. 중요한 결정을 내리기 전에 반드시 신뢰할 수 있는 출처를 통해 정보를 확인하시기 바랍니다.

이 AI 생성 콘텐츠가 도움이 되었나요?